package com.abl.javabasis._06_面向对象;

/**
 * 大象
 */
class DaXiang {
    //大象名字
    public String name;

    //大象构造函数
    public DaXiang(String name) {
        this.name = name;
    }

    //输出当前信息
    @Override
    public String toString() {
        return "DaXiang{" +
                "name='" + name + '\'' +
                '}';
    }

}

/**
 * 冰箱
 */
class BingXiang {

    //冰箱名字
    public String name;

    //冰箱构造函数
    public BingXiang(String name) {
        this.name = name;
    }

    public void 开门() {
        System.out.println(name + "：开门");
    }

    public void 关门() {
        System.out.println(name + "：关门");

    }

    public void 装东西(Object obj) {
        System.out.println(name + ":装进一个 ：" + obj.toString());
    }

}

/**
 * 人
 */
class Ren {

    //人名
    public String name;

    //人构造函数
    public Ren(String name) {
        this.name = name;
    }

    //执行操作
    public void start(DaXiang daXiang, BingXiang bingXiang) {
        System.out.println(name + " : 开始了自己的操作");
        bingXiang.开门();
        bingXiang.装东西(daXiang);
        bingXiang.关门();
    }
}

/**
 * 大象进冰箱
 */
public class DaXiangJinBingXiang {

    public static void main(String[] args) {
        DaXiang 大象 = new DaXiang("大象");
        BingXiang 孩儿牌子冰箱 = new BingXiang("孩儿牌冰箱");

        //
        Ren ren = new Ren("小明");
        ren.start(大象, 孩儿牌子冰箱);

    }

}
